# 主窗口类（继承QMainWindow）
from PyQt5.QtWidgets import (QMainWindow, QSplitter, QWidget,
                             QVBoxLayout, QPushButton, QAction)
from PyQt5.QtCore import Qt
from cores.workarea.view import WorkareaView
# from widgets.toolbar import MainToolbar

# 组件库视图类（临时实现）
class ComponentLibrary(QWidget):
    """
    组件库视图类，用于显示可用的组件。
    """
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        """
        初始化UI，设置组件库的样式和布局。
        """
        self.setMinimumWidth(200)
        self.setStyleSheet("background: #f0f0f0;")
        layout = QVBoxLayout()
        layout.addWidget(QPushButton("组件库（开发中）"))
        self.setLayout(layout)

# 属性面板视图类（临时实现）
class PropertyPanel(QWidget):
    """
    属性面板视图类，用于显示选定对象的属性。
    """
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        """
        初始化UI，设置属性面板的样式和布局。
        """
        self.setMinimumWidth(200)
        self.setStyleSheet("background: #f7f7f7;")
        layout = QVBoxLayout()
        layout.addWidget(QPushButton("属性面板（开发中）"))
        self.setLayout(layout)

# 主窗口类
class MainWindow(QMainWindow):
    """
    主窗口类，包含整个应用的主布局和核心组件。
    """
    def __init__(self):
        super().__init__()
        self.init_ui()
        self.setWindowTitle("服务编排工具 v0.2")
        self.resize(1280, 720)

    def init_ui(self):
        """
        初始化UI，设置主窗口的布局和组件。
        """
        # 主分割器（左-中-右）
        splitter = QSplitter(Qt.Horizontal)

        # 左侧面板
        self.component_panel = ComponentLibrary()
        splitter.addWidget(self.component_panel)

        # 中间工作区
        self.workarea_view = WorkareaView()
        splitter.addWidget(self.workarea_view)
        # 在main_window.py中临时添加测试代码
        self.workarea_view.scene.addRect(0, 0, 100, 100)  # 添加测试图形


        # 右侧面板
        self.property_panel = PropertyPanel()
        splitter.addWidget(self.property_panel)

        # 设置面板比例
        splitter.setStretchFactor(0, 1)
        splitter.setStretchFactor(1, 3)
        splitter.setStretchFactor(2, 1)

        # # 工具栏
        # self.toolbar = MainToolbar()
        # self.addToolBar(Qt.TopToolBarArea, self.toolbar)
        # # 在工具栏临时添加按钮
        # zoom_in_btn = QAction("Zoom In", self)
        # zoom_in_btn.triggered.connect(self.workarea_view.zoom_in)
        # self.toolbar.addAction(zoom_in_btn)

        # 设置中央部件
        self.setCentralWidget(splitter)



